package logic;

import dao.HistoriaClinicaDAO;
import dto.HistoriaClinicaDTO;
import java.sql.SQLException;
import java.time.LocalDate;
import java.util.ArrayList;

/**
 *
 * @author the_rub
 */
public class HistoriaClinica {

  private int id;
  private int idPaciente;
  private ArrayList<Integer> idTurnos;


  public HistoriaClinica(int id, int idPaciente, ArrayList<Integer> ids) {
    this.id = id;
    this.idPaciente = idPaciente;
    this.idTurnos = ids;
  }

  public HistoriaClinica(HistoriaClinicaDTO dto) {
    if (dto != null){
      this.id = dto.getId();
      this.idPaciente = dto.getIdPaciente();
      this.idTurnos = dto.getIdTurnos();
    }
  }

  public void Save() throws SQLException {
    HistoriaClinicaDTO dto = new HistoriaClinicaDTO(id, idPaciente, idTurnos);
    HistoriaClinicaDAO dao = HistoriaClinicaDAO.createDAO();
    dao.Save(dto);
  }

  public HistoriaClinicaDTO EditDetalleEstudios(String detalle) throws SQLException {
    HistoriaClinicaDAO dao = HistoriaClinicaDAO.createDAO();
    return dao.EditString(id, "detalle_estudios", detalle);
  }

  // FIXME
  public void AddPatologias(String patologia) throws SQLException {
    HistoriaClinicaDAO dao = HistoriaClinicaDAO.createDAO();
    dao.AddPatologia(id, patologia);
  }

  // FIXME
  public void AddAlergias(String alergia) throws SQLException {
    HistoriaClinicaDAO dao = HistoriaClinicaDAO.createDAO();
    dao.AddAlergia(id, alergia);
  }

  public static HistoriaClinicaDTO SearchByID(int id) throws SQLException {
    HistoriaClinicaDAO dao = HistoriaClinicaDAO.createDAO();
    return dao.HistoriaClinicaDTO(id);
  }

  public static ArrayList<HistoriaClinicaDTO> SearchByPacienteID(int idPaciente) throws SQLException {
    HistoriaClinicaDAO dao = HistoriaClinicaDAO.createDAO();
    return dao.SearchByPacienteID(idPaciente);
  }

  public int getId() {
    return id;
  }

  public int getIdPaciente() {
    return idPaciente;
  }
  
  public ArrayList<Integer> getIdTurnos(){
    return idTurnos;
  }



}
